<?
	/* Se asegura que el archivo es incluido por el index */
	defined( 'LOAD_MODULE_ACTION' ) or die( 'No esta permitido el acceso directo a ' . __FILE__ );
		$this->oTmpObject = new Producto_atractivo_frm( $this );

	class Producto_atractivo_frm extends Frm
	{
	function setValue ( $ncProducto, $ncAtractivo )
		{
			$cSql = "SELECT  cMotivo
				FROM gtProductoAtractivo
				WHERE ncProducto = '$ncProducto' AND  ncAtractivo = '$ncAtractivo' ";
			$aDatos = $this->oDatabase->getArray($cSql);
			$this->setFieldsArray ( $aDatos );
		}
	function Producto_atractivo_frm( &$oModule )
		{
			$this->Frm( $oModule );
			//Crea los Objetos de los campos de edicion
			$this->aFields['ncProducto']				= new InputList( "Producto", "ncProducto" );
			$this->aFields['aProductos']				= new InputCheck( "Productos", "aProductos" );
			$this->aFields['aAtractivos']					= new InputCheck( "Atractivos", "aAtractivos" );
			$this->aFields['ncAtractivo']					= new InputLookUp( "Atractivo", "ncAtractivo" );
			$this->aFields['cMotivo']						= new InputText( "Justificacion", "cMotivo" );
			$this->aFields['ncMaduracion']			= new InputList( "Maduracion", "ncMaduracion" );
			$this->aFields['ncRecorrido']				= new InputList( "Recorrido", "ncRecorrido" );
		}
	function setLevel( $nLevel)
		{
			switch ( $nLevel )
			{
				case 2:
					$this->aInput = array ('ncProducto','ncAtractivo','ncMaduracion','cMotivo'  );
					break;
				case 3:
					if ( $this->aFields['ncProducto']->getValue()  )
					{
						$this->aInput = array ('ncProducto','ncRecorrido', 'aAtractivos' );
					}
					if ( $this->aFields['ncAtractivo']->getValue()  )
					{
						$this->aInput = array ('ncAtractivo','aProductos' );
					}
					break;
			}
		}
	function initializeForm()
		{
			// Si viene el Ubicacion hace el retrieve
				if ( $this->isRetrievable() && $this->aFields['ncProducto']->getValue() && $this->aFields['ncAtractivo']->getValue() )
				{
					$this->setValue( $this->aFields['ncProducto']->getValue(), $this->aFields['ncAtractivo']->getValue() );
				}
			// Configura el Titulo
				$this->setLabel( "Producto - Atractivo" );
			return true;
		}
	function initializeField( $cField , &$oField )
		{
			switch ( $cField )
			{
					case 'ncProducto':
						if ( $oField->getValue() )
						{
							$oField->setHidden();
						} else
						{
							$cSql = "SELECT ncProducto, cdProducto FROM gtProductoTuristico ORDER BY cdProducto";
							$oField->setMatrix($this->oDatabase->getMatrix($cSql));
							$oField->setMandatory($this->isMandatory());
						}
					break;
					case 'ncRecorrido':
						$cSql = "SELECT ncRecorrido, cdRecorrido FROM gtRecorrido";
						$oField->setOnChangeAutoSubmit($this);
						$oField->setLanguage('es');
						$oField->setMatrix($this->oDatabase->getMatrix($cSql));
					break;
					case 'aAtractivos':
						$oField->setForm( $this );
						if ( $this->aFields['ncRecorrido']->getValue () )
						{
							$cSql = "SELECT Atr.ncAtractivo, cdAtractivo
											FROM gtAtractivo  as Atr
											JOIN gtRecorridoAtractivo as EFu
												ON EFu.ncAtractivo =  Atr.ncAtractivo
												AND EFu.ncRecorrido = "  . $this->aFields['ncRecorrido']->getValue ();
							if ( $this->aFields['ncProducto']->getValue () )
								$cSql .= " WHERE Atr.ncAtractivo not in (SELECT ncAtractivo FROM gtProductoAtractivo WHERE ncProducto = " . $this->aFields['ncProducto']->getValue () . ")";
								$cSql .= "  AND Atr.ncEstablecimiento not in (SELECT ncEstablecimiento FROM gtProductoEstablecimiento WHERE ncProducto = " . $this->aFields['ncProducto']->getValue () . ")";
						}
						$oField->setMatrix( $this->oDatabase->getMatrix( $cSql ) );
						$oField->setMultiple( true );
					break;
					case 'aProductos':
						$oField->setForm( $this );
						$cSql = "SELECT ncProducto, cdProducto
										FROM gtProductoTuristico WHERE ncProducto NOT IN (SELECT ncProductoPadre FROM gtProductoTuristico  where ncProductoPadre is not null )  ";
						if ( $this->aFields['ncAtractivo']->getValue () )
							$cSql .= " AND ncProducto not in (SELECT ncProducto FROM gtProductoAtractivo WHERE ncAtractivo = " . $this->aFields['ncAtractivo']->getValue () . ")";
						$oField->setMatrix( $this->oDatabase->getMatrix( $cSql ) );
						$oField->setMultiple( true );
					break;
					case 'ncAtractivo':
						if ( $oField->getValue() )
						{
							$oField->setHidden();
						} else
						{
							$oField->setForm( $this );
							initializeAtractivo($oField);
						}
					break;
					case 'ncMaduracion':
						$cSql = "SELECT ncMaduracion, cdMaduracion FROM gcMaduracion";
						$oField->setMatrix($this->oDatabase->getMatrix($cSql));
					break;
					case 'cMotivo':
						$oField->setEditor();
					break;
			}
 		}
	}
?>